std::deque::emplace | 您所在的位置:网站首页 › std::string has no member named pop_back › std::deque::emplace |
[edit template] C++ Compiler support Freestanding and hosted Language Standard library Standard library headers Named requirements Feature test macros (C++20) Language support library Concepts library (C++20) Metaprogramming library (C++11) Diagnostics library General utilities library Strings library Containers library Iterators library Ranges library (C++20) Algorithms library Numerics library Localizations library Input/output library Filesystem library (C++17) Regular expressions library (C++11) Concurrency support library (C++11) Technical specifications Symbols index External libraries [edit] Containers library Sequence array(C++11) vector vector deque forward_list(C++11) list Associative set multiset map multimap Unordered associative unordered_set(C++11) unordered_multiset(C++11) unordered_map(C++11) unordered_multimap(C++11) Adaptors stack queue priority_queue flat_set(C++23) flat_multiset(C++23) flat_map(C++23) flat_multimap(C++23) Views span(C++20) mdspan(C++23) Iterator invalidation Member function table Non-member function table [edit] std::deque Member types Member functions deque::deque deque::~deque deque::operator= deque::assign deque::assign_range(C++23) deque::get_allocator Element access deque::at deque::operator[] deque::front deque::back Iterators deque::begindeque::cbegin(C++11) deque::enddeque::cend(C++11) deque::rbegindeque::crbegin(C++11) deque::renddeque::crend(C++11) Capacity deque::empty deque::size deque::max_size deque::shrink_to_fit(DR*) Modifiers deque::clear deque::insert deque::insert_range(C++23) deque::emplace deque::erase deque::push_front deque::emplace_front(C++11) deque::prepend_range(C++23) deque::pop_front deque::push_back deque::emplace_back(C++11) deque::append_range(C++23) deque::pop_back deque::resize deque::swap Non-member functions operator==operator!=operatoroperator=operator(until C++20)(until C++20)(until C++20)(until C++20)(until C++20)(C++20) swap(std::deque) erase(std::deque)erase_if(std::deque)(C++20)(C++20) Deduction guides(C++17) [edit] template void emplace_back( Args&&... args ); (since C++11) (until C++17) template reference emplace_back( Args&&... args ); (since C++17) Appends a new element to the end of the container. The element is constructed through std::allocator_traits::construct, which typically uses placement-new to construct the element in-place at the location provided by the container. The arguments args... are forwarded to the constructor as std::forward(args).... All iterators (including the end() iterator) are invalidated. No references are invalidated. Contents 1 Parameters 2 Return value 3 Complexity 4 Exceptions 5 Example 6 See also [edit] Parameters args - arguments to forward to the constructor of the element Type requirements -T (the container's element type) must meet the requirements of EmplaceConstructible. [edit] Return value(none) (until C++17)A reference to the inserted element. (since C++17) [edit] ComplexityConstant. [edit] ExceptionsIf an exception is thrown, this function has no effect (strong exception guarantee). [edit] Example The following code uses emplace_back to append an object of type President to a std::deque. It demonstrates how emplace_back forwards parameters to the President constructor and shows how using emplace_back avoids the extra copy or move operation required when using push_back. Run this code #include #include #include #include struct President { std::string name; std::string country; int year; President(std::string p_name, std::string p_country, int p_year) : name(std::move(p_name)), country(std::move(p_country)), year(p_year) { std::cout |
CopyRight 2018-2019 实验室设备网 版权所有 |